﻿using System;

namespace MediaLibraryManagement.Entity
{
    public class User : IEntity
    {
        private int _id;
        private string _userName;
        private string _password;
        private string _firstName;
        private string _lastName;
        private DateTime? _dateOfBirth;
        private Gender _gender;
        private string _address;
        private string _email;
        private string _securityQuestion;
        private string _securityAnswer;
        private Privileges _privilege;
        private DateTime _joinedDate;
        private bool _isActive;

        public int ID
        {
            get { return _id; }
            set { _id = value; }
        }

        public string UserName
        {
            get { return _userName; }
            set { _userName = value; }
        }

        public string Password
        {
            get { return _password; }
            set { _password = value; }
        }

        public string FirstName
        {
            get { return _firstName; }
            set { _firstName = value; }
        }

        public string LastName
        {
            get { return _lastName; }
            set { _lastName = value; }
        }

        public DateTime? DateOfBirth
        {
            get { return _dateOfBirth; }
            set { _dateOfBirth = value; }
        }

        public Gender Gender
        {
            get { return _gender; }
            set { _gender = value; }
        }

        public string Address
        {
            get { return _address; }
            set { _address = value; }
        }

        public string Email
        {
            get { return _email; }
            set { _email = value; }
        }

        public string SecurityQuestion
        {
            get { return _securityQuestion; }
            set { _securityQuestion = value; }
        }

        public string SecurityAnswer
        {
            get { return _securityAnswer; }
            set { _securityAnswer = value; }
        }

        public Privileges Privilege
        {
            get { return _privilege; }
            set { _privilege = value; }
        }

        public DateTime JoinedDate
        {
            get { return _joinedDate; }
            set { _joinedDate = value; }
        }

        public bool IsActive
        {
            get { return _isActive; }
            set { _isActive = value; }
        }
    }
}